Fix domain suspend by xend stop
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 18 Mar 2008 11:34:44 +0000 (11:34 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 18 Mar 2008 11:34:44 +0000 (11:34 +0000)
commitbfe18b4f3a3ce91b3920a0a8a4a04f93161b4a93
treecd4d1569c7e5de5cc5b56dfe88b9a4342735ae7d
parent7564231fbc9ce8dfe1ac42223cd20f3dbad15070
Fix domain suspend by xend stop

When I stopped xend by xend stop command, a domain suspend processing
is frequently failed.  This patch solves the problem.

Step to reproduce:
 1. xm new XXX on_xend_stop="suspend"
 2. xm start XXX
 3. xend stop

In the xend stop, if the domain suspend processing is slept by
state_updated.wait() of waitForShutdown(), then the domain suspend
processing is not waked up again because state_updated.notifyAll()
of _stateSet() is not executed.

For the reason, processing of _on_domains_changed() is waited by
domains_lock.acquire() because the domain suspend processing is
keeping domains_lock and sleeping.  The domain suspend processing
got domains_lock at cleanup_domains().

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
tools/python/xen/xend/XendDomainInfo.py